/*
 * This application is a dashboard to automate my photo import and editing
 * flow, as follows:
 * 
 * 1. Import photos from camera.  There are variants based on which camera 
 * the photos come from.
 * a. Raw and JPEG files from high end camera.  These are stored under a 
 * directory tree dedicated to this camera.
 * b. JPEG files from point and shoot camera.  These are stored under a
 * directory tree dedicated to this camera.
 * c. Mostly JPEG files from other sources.  These are stored under a
 * directory tree dedicated to "other pictures."
 * 
 *    Supporting photoDashboard functionality: 
 *    *create appropriate directory for the source.  Some automation
 *     would be convenient here.
 *    *copy camera files
 * 
 * 2. Correct internal file timestamps if necessary, then rename the files
 * to add timestamp to the beginning.  Also change file modify time to match
 * timestamp.
 * 
 *    Supporting photoDashboard functionality:
 *    *do the rename and file attribute modifications either using exiftool
 *     or duplicating it functionality for these operations
 * 
 * Once steps 1 and 2 are done, the resulting files comprise the source for
 * all editing, and are preserved and backed up.  They are never deleted.
 * 
 * 3. Copy files to event directories.  In general, raw files are used when
 * available.  For each event, corresponding files from all cameras are 
 * copied, resulting in a mix of file types and sizes.  Because of the
 * previous renaming step, they sort to chronological order.
 * 
 *    Supporting photoDashboard functionality:
 *    *select appropriate files based on timestamp.  Maybe also use date
 *    to go to the right camera file directory or directories under known
 *    camera directories and "other" areas.
 *    *grab raw files when available and JPEGs otherwise.
 * 
 * 4. Grade and edit.  Rejects go into a subdirectory called "rejects."
 * Completed edits go into a subdirectory called "done," and the source
 * files in the event directory get deleted.  After this step is complete,
 * the event directly will be empty except for the "done" and "rejects" 
 * directories.
 * a. JPEG source files result in JPEG files in the "done" subdirectory.
 * b. Raw source file result in a JPEG file, a DNG (Adobe Digital Negative)
 * file, and an XMP file (SidecarForExtension,) which records edits made to 
 * the raw file before it was saved as DNG.  The XMP file is initially 
 * saved to the source directory and needs to be moved to the done 
 * subdirectory as a separate operation.
 * 
 *    Supporting photoDashboard functionality:
 *    *clean up event work area:
 *       *delete files that have been edited (corresponding file in "done."
 *        Maybe display candidates and ask for permission.
 *       *move xmp files to "done"
 *       *look for inconsistencies like edited files in the wrong place.
 * 
 * 5. Create temporary print areas to be used for upload and media for a 
 * printing service.  This flow needs development.
 * 
 *    Supporting photoDashboard functionality:
 *    *provide GUI for selecting files to print
 *    *keep track of print groups, duplicate printing, and files not printed.
 *    *manage temporary print directories, including creating, deleting and
 *     recording for re-creation when desired.
 *    *provide flexible model so more than one event can be the source of a
 *     print job.
 * 
 * 6. Maintenance functionality.  This is stuff the tool could do that 
 * depends on an understanding of the flow.
 *    *find the camera source file for a given file in work area, done area
 *     or reject area.
 *    *do spot renaming, re-dating or lower-casing
 *    *provide for re-renaming, ie strip off date and rename based on new
 *     information like timestamp shift.
 * 
 * GUI notes;
 */
package photodashboard;

/**
 *
 * @author eburdick
 */
public class PhotoDashboard
{

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        // TODO code application logic here
    }
}
